package com.zmn.oms.third.daowei.service;

import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.third.daowei.dto.*;

/**
 * 类描述：
 *
 * @author lhl
 * @date 2020/02/21 15:12
 */
public interface DaoweiService {

    /**
     * 创建订单
     * @return
     * @throws OmsBaseException
     */
    CreateOrderRsp createOrder(CreateOrderReq req);

    /**
     * 预付款
     * @param orderPay
     * @return
     */
    BaseRsp prepayOrder(OrderPay orderPay);

    /**
     * 二次支付(补差价)
     * @param req
     * @return
     */
    BaseRsp secondPayOrder(SecondOrderPay req);

    /**
     * 取消订单，一般用于用户在未支付时的取消订单操作
     * @param cancelOrderReq
     * @return
     */
    CancelOrderRsp cancelOrder(CancelOrderReq cancelOrderReq);

    /**
     * 申请退款，一般用于用户在已支付后的取消订单操作
     * @param cancelOrderReq
     * @return
     */
    CancelOrderRsp applyRefund(CancelOrderReq cancelOrderReq);

    /**
     * 用户评价
     * @param commentReq
     * @return
     */
    BaseRsp comment(CommentReq commentReq);

    /**
     * 查询服务时间
     * @param req
     * @return
     */
    ServiceTimeRsp queryServiceTime(ServiceTimeReq req);

    /**
     * 抢单（仅用于到位直选渠道）
     * @param orderId
     */
    void rushToAcceptOrder(Long orderId) throws OmsBaseException;

    /**
     * 获取渠道支付二维码图片地址
     * @param orderId
     * @throws OmsBaseException
     */
    String requestPayQrCodeImgUrl(Long orderId) throws OmsBaseException;
}
